package com.llb666.java.java8;

import java.util.HashMap;
import java.util.Map;

/**
 * java8一些好用的方法 以及 int 和integer区别
 * Created by 斌~
 * 2020/6/30 11:30
 * @author 斌~
 */
public class NewDemo {

   public static void mapTest(){
       //1.getOrDefault map中存在name,获得name对应的value,否则取默认值
       Map<String, String> map = new HashMap<>();
       map.put("name", "lxj");
       map.put("age", "24");
       map.put("sex", "女");
       String name = map.getOrDefault("name", "test");
       System.out.println(name);
       //2.putIfAbsent,如果map纯在key了，就不再更新value值
       map.putIfAbsent("name","llb");

       Map<Integer, Integer> integerMap = new HashMap<>();
       integerMap.put(10,10);
       integerMap.computeIfPresent(10,(key,value)->key*value);
       System.out.println(integerMap.get(10));

   }

    public static void main(String[] args) {
        mapTest();
        Integer f1 =100;
        Integer f2 =100;
        Integer f3 =150;
        Integer f4 =150;
        System.out.println(f1==f2); //true ,当int在【-128，127】内时，结果会缓存起来
        System.out.println(f3==f4);//false,属于两个对象
        System.out.println(f1.equals(f2));//true  Integer 比较大小采用 equals
        System.out.println(f3.equals(f4));//true

        Integer a =new Integer(3);
        Integer d =new Integer(3);//通过new 来创建两个Integer对象
        Integer b = 150;//将3自动装箱成Integer类型
        int c =150;//基础数据类型3
        System.out.println(a == b);//两个引用没有引用同一对象  false
        System.out.println(a ==d);//两个通过new创建的对象也不是同一个引用 false
        System.out.println(c ==b);//b自动拆箱成int类型再和c比较， true





    }
}
